]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
appMenu: Update on icon theme changes
authorFlorian Müllner <fmuellner@gnome.org>
Tue, 30 Oct 2012 17:30:21 +0000 (18:30 +0100)
committerFlorian Müllner <fmuellner@gnome.org>
Tue, 30 Oct 2012 23:06:46 +0000 (00:06 +0100)
While we recreate icons on style changes elsewhere, the faded
icon in the application menu will stick around after icon theme
changes until another application is focused.

https://bugzilla.gnome.org/show_bug.cgi?id=687224

js/ui/panel.js

index 29165f6f179486dbf3c0c438c90ce488842ddabc..9f36963465d28e8842b8f205f63d2e30caef3e9e 100644 (file)
@@ -247,6 +247,10 @@ const AppMenuButton = new Lang.Class({
         this._container.connect('get-preferred-height', Lang.bind(this, this._getContentPreferredHeight));
         this._container.connect('allocate', Lang.bind(this, this._contentAllocate));
 
+        let textureCache = St.TextureCache.get_default();
+        textureCache.connect('icon-theme-changed',
+                             Lang.bind(this, this._onIconThemeChanged));
+
         this._iconBox = new Shell.Slicer({ name: 'appMenuIcon' });
         this._iconBox.connect('style-changed',
                               Lang.bind(this, this._onIconBoxStyleChanged));
@@ -332,6 +336,15 @@ const AppMenuButton = new Lang.Class({
         this._updateIconBoxClip();
     },
 
+    _onIconThemeChanged: function() {
+        if (this._iconBox.child == null)
+            return;
+
+        this._iconBox.child.destroy();
+        let icon = this._targetApp.get_faded_icon(2 * PANEL_ICON_SIZE);
+        this._iconBox.set_child(icon);
+    },
+
     _updateIconBoxClip: function() {
         let allocation = this._iconBox.allocation;
         if (this._iconBottomClip > 0)